home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / basic / qbfaqr01.zip / NOBLINK.BAS < prev    next >
BASIC Source File  |  1992-08-10  |  2KB  |  59 lines

  1. 'Date: 03-21-92 (23:44)
  2. 'From: CHRISTY GEMMELL
  3. '-------------------------------------------------------------------------
  4. ' NOBLINK.BAS   demonstrates high-intensity background text in QuickBASIC
  5. '
  6. '   Author:     Christy Gemmell
  7. '   Date:       12/3/1992
  8. '   For:
  9. '
  10. '   $DYNAMIC
  11. '
  12. '   $INCLUDE: 'QB.BI'
  13. '
  14.     DECLARE SUB BlinkSwitch (Toggle%)
  15.     DECLARE SUB PokePrint (Row%, Col%, Text$, Fore%, Back%)
  16.  
  17.     DIM SHARED InRegs AS RegType, OutRegs AS RegType
  18.  
  19.     CLS
  20.     PokePrint 10, 10, "This is NORMAL background", 1, 6
  21.     PokePrint 15, 10, "This is BLINKING background", 1, 14
  22.     PokePrint 20, 10, "Press a key.....", 15, 0
  23.     R$ = INPUT$(1)
  24.     BlinkSwitch 0
  25.     PokePrint 15, 10, "This is INTENSE background ", 1, 14
  26.     R$ = INPUT$(1)
  27.     BlinkSwitch 1
  28.     CLS
  29. END
  30.  
  31. '   Toggle blinking or intense backgrounds.
  32. '
  33. SUB BlinkSwitch (Toggle%) STATIC
  34.     Toggle% = Toggle% AND 1             ' Only 0 or 1 allowed
  35.     InRegs.ax = &H1003                  ' Function 16/3
  36.     InRegs.bx = Toggle%                 ' Toggle blink/intensity
  37.     INTERRUPT &H10, InRegs, OutRegs     ' Call video BIOS
  38. END SUB
  39.  
  40. '   Write a string of text directly to video memory.
  41. '
  42. SUB PokePrint (Row%, Col%, Text$, Fore%, Back%) STATIC
  43.     DEF SEG = &H40
  44.     IF PEEK(&H49) = 7 THEN
  45.        VideoSegment& = &HB000
  46.     ELSE
  47.        VideoSegment& = &HB800
  48.     END IF
  49.     DEF SEG = VideoSegment&
  50.     Offset% = (((Row% - 1) * 80) + (Col% - 1)) * 2
  51.     Colour% = (Back% * 16) + Fore%
  52.     FOR I% = 1 TO LEN(Text$)
  53.         Char% = ASC(MID$(Text$, I%, 1))
  54.         POKE Offset% + ((I% - 1) * 2), Char%
  55.         POKE Offset% + ((I% - 1) * 2) + 1, Colour%
  56.     NEXT I%
  57.     DEF SEG
  58. END SUB
  59.